// pages/decorationRing/index.js
//引入请求文件
const moment = require('moment');
var util = require('../../utils/util.js');
var config = require('../../config.js');
var WXBizDataCrypt = require('../../crypto/WXBizDataCrypt.js');
let app = getApp();
let url = app.url;
let gobalData = app.gobalData;
let userInfo = {};
Page({
	/**
	 * 页面的初始数据
	 */
	data: {
		leaderId: null,
		labelList: ['全部标签', '厨房防水', '水电改造', '木工', '家具', '瓷砖', '吊顶', '吊灯', '软装'],
		labelInfo: '全部标签',
		releaseFocus: false,
		decorationRingList: [],
		imgCount: 0,
		imgFlag: false,
		commentValue: '',
		articleId: '',
		previewImgMoreFlag: false, // 如果是图片预览，不需要刷新页面
		page: 0, // 由于第一次加载的时候就要自增1，所以默认值设置为0
		hasMore: true, // 2.1用于记录是否还有更多的数据
		showModal: false //用于判断用户是否注册
	},
	/**
	 * 标签改变时触发
	 */
	labelChange(e) {
		let idx = e.detail.value;
		this.setData({
			labelInfo: this.data.labelList[idx]
		})
		if (this.data.labelInfo == '全部标签') {
			this.setData({
				labelInfo: null
			})
		}
		util(`${url}Article/getArticleList`, {
			page: 1,
			label: this.data.labelInfo
		}).then(res => {
			if (res.status == 1) {
				this.setData({
					decorationRingList: res.content.data
				})

				if (this.data.decorationRingList.length == 0) {
					this.setData({
						imgFlag: true
					})
				} else {
					this.setData({
						imgFlag: false
					})
				}
			} else {
				wx.showToast({
					title: '获取数据失败',
					icon: 'none'
				})
			}
		})
	},
	/**
	 * 加载更多
	 */
	loadMore() {
		if (!this.data.hasMore) {
			wx.hideLoading();
			wx.showToast({
				title: '已经没有更多了'
			})
			return; //如果没有更多数据，就直接返回
		}
		this.setData({
			page: ++this.data.page
		})
		if (this.data.labelInfo == '全部标签') {
			this.setData({
				labelInfo: null
			})
		}
		util(`${url}Article/getArticleList`, {
			page: this.data.page,
			label: this.data.labelInfo
		}).then(res => {
			if (res.status == 1) {
				// 拼接数据
        let newList = [...this.data.decorationRingList, ...res.content.data];
				// 获取数据总条数
				let count = parseInt(res.content.total);
				// 判断是否还有更多数据
				let flag = parseInt(res.content.current_page) * parseInt(res.content.per_page) < count; //如果小于总条数，就说明还有。

				res.content.data.forEach(item => {
					item.createTime = moment(item.createTime).fromNow();
					item.content = decodeURI(item.content);
					// console.log(item.comment)
					item.comment.forEach((item,index) => {
						item.commentValue = decodeURI(item.commentValue)
					})
				})
				this.setData({
					decorationRingList: newList,
					hasMore: flag
				})
				// 				功能测试，模拟后端数据
				// 				for (let i = 0; i < 5; i++) {
				// 					this.data.decorationRingList[0].collect.list.push({
				// 						id: 115 + i,
				// 						articleId: 141 + i,
				// 						avatar: 'https://wx.qlogo.cn/mmopen/vi_32/WmueQUbwu98q6OhZEDsa80G3HwTvc2na1QUF1icI9uDSahaNadqJ6C7Ks0c47sbjHuUYAS1WWib322G7kzaLzB0Q/132',
				// 						time: '2018-11-27 09:07:30'
				// 					})
				// 				}
				// 				this.data.decorationRingList[0].collect.collectCount = 7;
				// 				this.data.decorationRingList.forEach(item=>{
				// 					if (item.collect.list.length >= 7) {
				// 						item.collect.list.splice(0,7);
				// 					}
				// 				})

				this.setData({
					decorationRingList: this.data.decorationRingList
				})
				if (this.data.decorationRingList.length == 0) {
					this.setData({
						imgFlag: true
					})
				} else {
					this.setData({
						imgFlag: false
					})
				}
				wx.hideLoading();
			} else {
				wx.showToast({
					title: '获取数据失败',
					icon: 'none'
				})
			}
		})
	},
	/**
	 * 点击进行评论
	 */
	bindReply: function(e) {
		// 获取文章主键id
		let articleId = e.currentTarget.dataset.index;
		this.setData({
			releaseFocus: !(this.data.releaseFocus),
			articleId
		})
	},
	userData(e) {
		userInfo = e.detail.content.userInfo;
	},
	/**
	 * 点赞
	 */
	clickHelp(e) {
		// 获取文章主键id
		let articleId = e.currentTarget.dataset.index;
		// 获取当前用户id
		try {
			var cid = userInfo.id;
		} catch (e) {

		}
		util(`${url}Article/editCollect`, {
			articleId: articleId,
			cid: cid
		}).then(res => {
			if (res.status == 1) {
				this.data.decorationRingList.forEach(item => {
					if (item.id == articleId) {
						item.collect = res.content;
					}
				})

				this.data.decorationRingList.forEach(item => {
					if (item.collect.list.length >= 7) {
						item.collect.list.splice(0, 7);
					}
				})

				this.setData({
					decorationRingList: this.data.decorationRingList
				});
			} else {
				wx.showToast({
					title: '点赞失败',
					icon: 'none'
				})
			}
		}, err => {
			// 说明没有注册！
			this.setData({
				showModal: true
			})

		})
	},
	/**
	 * 获取评论消息
	 */
	getInput(e) {
		let comment = e.detail.value;
		this.setData({
			commentValue: comment
		})
	},
	releaseFocus() {
		this.setData({
			releaseFocus: false
		})
	},
	/**
	 * 发送评论
	 */
	commentSend(e) {
		// 获取文章主键id
		let articleId = this.data.articleId;
		// 获取当前用户id
		try {
			var cid = userInfo.id;
		} catch (e) {
			var cid = null
		}
		// 获取评论内容
		let commentValue = encodeURI(this.data.commentValue);
		util(`${url}Article/addUserComment`, {
			articleId,
			cid,
			commentValue
		}).then(res => {
			if (res.status == 1) {
				let name = userInfo.name;
				let avatar = userInfo.avatar;
				let obj = {
					commentValue: decodeURI(commentValue),
					name,
					avatar
				}
				this.data.decorationRingList.map(item => {
					if (item.id === articleId) {
						item.comment.unshift(obj);
					}
				})
				this.setData({
					decorationRingList: this.data.decorationRingList,
					commentValue: ''
				});

			} else {
				wx.showToast({
					title: '发表评论失败',
					icon: 'none'
				})
			}
		}, err => {
			// 说明没有注册！
			this.setData({
				showModal: true
			})
		})
		this.setData({
			releaseFocus: !(this.data.releaseFocus)
		})
	},
	/**
	 * 生命周期函数--监听页面加载
	 */
	onLoad: function(options) {
		this.setData({
			leaderId: options.leaderId
		})
		// this.loadMore();
	},
	/**
	 * 生命周期函数--监听页面初次渲染完成
	 */
	onReady: function() {

	},

	/**
	 * 图片预览
	 */
	previewImg(e) {
		this.setData({
			previewImgMoreFlag: true
		})
		let id = e.currentTarget.dataset.id;
		let idx = e.currentTarget.dataset.index;
		let Item = this.data.decorationRingList.find(item => {
			return item.id == id;
		})
		let imgs = Item.pictureArray;
		let self = this;
		wx.previewImage({
			current: imgs[idx],
			urls: imgs
		})
	},
	
	/**
	 * 生命周期函数--监听页面显示
	 */
	onShow: function() {
		userInfo = wx.getStorageSync('userInfo').userInfo;
		if (config.idFlag == true) {
			this.setData({
				showModal: false
			})
		}
		if (this.data.previewImgMoreFlag) {
			// 如果是图片预览，不刷新当前页面，并关闭图片预览判断
			this.setData({
				previewImgMoreFlag: false
			})
		} else {
			// console.log('我没有触发吗？')
			this.setData({
				decorationRingList: [],
				page: 0,
				hasMore: true
			})
			this.loadMore();
		}

		// 		app.sliderightshow(this, 'slide_up1', -200, 1)
		// 		setTimeout(function() {
		// 			app.sliderightshow(this, 'slide_up2', -200, 1)
		// 		}.bind(this), 200);
	},
	
	/**
	 * 生命周期函数--监听页面隐藏
	 */
	onHide: function() {
		// 		//你可以看到，动画参数的200,0与渐入时的-200,1刚好是相反的，其实也就做到了页面还原的作用，使页面重新打开时重新展示动画
		// 		app.sliderightshow(this, 'slide_up1', 200, 0)
		// 		//延时展现容器2，做到瀑布流的效果，见上面预览图
		// 		setTimeout(function() {
		// 			app.sliderightshow(this, 'slide_up2', 200, 0)
		// 		}.bind(this), 200);
	},
	
	/**
	 * 页面上拉触底事件的处理函数
	 */
	onReachBottom: function() {
		wx.showLoading({
			title: "正在加载更多"
		})
		this.loadMore();
	},
	
	/**
	 * 页面顶部下拉刷新触发
	 */
	onPullDownRefresh: function() {
		this.setData({
			decorationRingList: [],
			page: 0,
			hasMore: true,
		});
		// 3.2 再重新请求数据
		this.loadMore();
		// 3.3 记得停止，否则在手机端一直存在
		wx.stopPullDownRefresh();
	},
	/**
	 * 用户点击右上角分享
	 */
	onShareAppMessage: function() {
		return {
			title: '装笆，您的装修朋友圈',
			path: `pages/decorationRing/index?leaderId=${wx.getStorageSync('userInfo').userInfo.id}`
		}
	}
})
